package com.tbit.uqbike.service.business;

import com.tbit.common.entity.view.Result;
import com.tbit.uqbike.object.pojo.dto.AddQuickAccessDTO;
import com.tbit.uqbike.object.pojo.dto.MachineDataDTO;
import com.tbit.uqbike.object.pojo.dto.QuickAccessDTO;
import com.tbit.uqbike.object.pojo.dto.TodoItemsDTO;
import com.tbit.uqbike.object.pojo.vo.MachineDataVO;
import com.tbit.uqbike.object.pojo.vo.QueryQuickAccessVO;
import com.tbit.uqbike.object.pojo.vo.WorkBenchRevenueVO;
import com.tbit.uqbike.object.value.LoginInfo;

import java.util.List;
import java.util.Map;

/**
 * 工作台
 * @author <a href="mailto:liu.haoxiang@tbit.com.cn">BUGXiang</a>
 * @version 1.0
 * @since 2024-11-13
 */
public interface WorkbenchService {

    /**
     * 查询快捷入口列表
     * @param dto dto
     * @return result
     */
    Result<QueryQuickAccessVO> queryQuickAccess(QuickAccessDTO dto);

    /**
     * 编辑快捷入口
     * @param dto dto
     * @return result
     */
    Result<Object> addQuickAccess(AddQuickAccessDTO dto);

    /**
     * 代办事项
     * @param dto dto
     * @return result
     */
    Result<Map<String, Object>> todoItems(TodoItemsDTO dto);

    /**
     * 车辆数据概况
     * @param dto dto
     * @return result
     */
    Result<MachineDataVO> machineData(MachineDataDTO dto);

    /**
     * 运营数据概况
     * @param brandId 品牌id
     * @param accountIdList 区域id列表
     * @return result
     */
    Result<WorkBenchRevenueVO> operatingRevenue(Integer brandId, List<Integer> accountIdList);

    /**
     * 用户数据概况
     * @param accountIds 区域id列表
     * @return  Result<Object>
     */
    Result<Object> userOverview(List<Integer> accountIds, Integer brandId);

    /**
     * 车辆数据概况
     * @param accountIds
     * @param brandId
     * @return
     */
    Result<Object> machineOverview(List<Integer> accountIds, Integer brandId, LoginInfo li);
}
